2장. 클라우드는 어떻게 서버를 제공하는가
1. 서버를 몇 분 만에 만드는 것이 가능한 이유
1장에서 우리는 클라우드가 서버를 임대하는 방식이라고 배웠다.
그렇다면 이런 질문이 생긴다.
- 버튼을 누르면 왜 몇 분 만에 서버가 만들어질까?
- 실제 물리 서버를 새로 설치하는 것일까?
답은 아니다.
클라우드는 대부분 가상화 기술을 이용해
하나의 물리 서버를 여러 개로 나누어 제공한다.
2. 물리 서버와 가상 서버
물리 서버
- 실제 하드웨어 장비
- CPU, 메모리, 디스크, 네트워크 카드가 물리적으로 존재
- 데이터센터에 설치되어 있음
가상 서버
- 물리 서버 위에 소프트웨어적으로 만들어진 서버
- 독립된 운영체제를 실행
- 다른 가상 서버와 격리되어 동작
사용자는 가상 서버를 사용하지만,
실제로는 물리 서버의 자원을 나누어 사용하는 구조다.
3. 가상화란 무엇인가
가상화(Virtualization)는
하나의 물리 자원을 여러 개의 논리적 자원으로 나누는 기술
이다.
예를 들어:
- CPU 32코어
- 메모리 256GB
를 가진 물리 서버가 있다면,
이를 나누어
- 4코어 / 16GB 서버 여러 개
- 8코어 / 32GB 서버 여러 개
처럼 만들 수 있다.
이렇게 만들어진 각각의 서버는
독립된 컴퓨터처럼 동작한다.
4. 하이퍼바이저의 역할
이 작업을 수행하는 소프트웨어를 하이퍼바이저라고 한다.
하이퍼바이저는 다음을 담당한다.
- 물리 CPU를 여러 개의 가상 CPU로 분할
- 메모리를 나누어 각 가상 서버에 할당
- 디스크를 논리적으로 분리
- 네트워크를 가상으로 구성
즉, 물리 자원을 관리하고 나누어주는 관리자 역할을 한다.
5. 왜 이것이 클라우드를 가능하게 하는가
클라우드 사업자는 대규모 데이터센터에
수많은 물리 서버를 보유하고 있다.
사용자가 “새 서버를 만들어 달라”고 요청하면,
- 이미 준비된 물리 서버 위에
- 하나의 가상 서버를 생성하고
- 운영체제를 올린 뒤
- 네트워크를 연결해준다
이 과정이 자동화되어 있기 때문에
몇 분 안에 서버가 생성될 수 있다.
물리 장비를 새로 설치하는 것이 아니라,
이미 존재하는 자원을 분할하여 제공하는 것이다.
6. 가상화의 장점
가상화는 클라우드에 다음과 같은 장점을 제공한다.
1) 빠른 생성
물리 설치 없이 즉시 서버 제공 가능
2) 높은 자원 활용률
하나의 물리 서버를 여러 사용자가 공유
3) 격리
한 가상 서버의 장애가 다른 서버에 직접 영향을 주지 않음
4) 유연한 확장
필요할 때 서버를 추가 생성 가능
7. 가상 서버는 완전히 독립적인가
가상 서버는 논리적으로 독립적이지만
물리 자원을 공유한다는 사실은 변하지 않는다.
따라서 다음과 같은 상황이 발생할 수 있다.
- 같은 물리 서버의 다른 가상 서버가 과도한 자원을 사용
- 네트워크 공유로 인한 지연
- 디스크 I/O 경쟁
이 문제를 줄이기 위해
클라우드 사업자는 자원 격리 기술을 지속적으로 발전시키고 있다.
8. 가상 머신과 컨테이너
가상화에는 두 가지 주요 방식이 있다.
가상 머신(VM)
- 독립된 운영체제를 포함
- 격리 수준이 높음
- 상대적으로 무거움
컨테이너(Container)
- 운영체제를 공유
- 가볍고 빠름
- 마이크로서비스 구조에 적합
현재 대부분의 클라우드 서비스는
가상 머신 기반 구조 위에서 시작되었으며,
최근에는 컨테이너 기술도 널리 활용되고 있다.
9. 클라우드 서비스마다 부르는 이름
각 클라우드 서비스는
이 가상 서버를 서로 다른 이름으로 부른다.
- Amazon Web Services → EC2
- Google Cloud Platform → Compute Engine
- Microsoft Azure → Virtual Machine
이름은 다르지만,
기본 원리는 동일하다.
10. 정리
이 장에서 기억해야 할 핵심은 다음과 같다.
- 클라우드는 물리 서버를 직접 빌려주는 것이 아니다.
- 가상화 기술을 이용해 물리 자원을 나누어 제공한다.
- 하이퍼바이저가 자원을 분할하고 관리한다.
- 이 구조 덕분에 빠른 생성과 확장이 가능하다.